﻿Public Class frmRamoAtividade

#Region "Declaração de variáveis"
    Private objRamoAtividade As New Controle.ctrRamoAtividade
    Private iIdRamoAtividade As Int32
    Private sMensagemValidacao As String = ""
#End Region

#Region "Propriedades"

    Public Property IDRamoAtividade() As Int32
        Get
            Return Me.iIdRamoAtividade
        End Get
        Set(ByVal value As Int32)
            Me.iIdRamoAtividade = value
        End Set
    End Property

#End Region

#Region "Métodos"

    Private Sub frmRamoAtividade_alteraModo(ByVal eModoAtual As frmPadrao.eModo) Handles Me.alteraModo
        If (eModoAtual = eModo.eAguardar Or eModoAtual = eModo.eExcluir) Then
            Me.lblRamoAtividade.Enabled = False
            Me.txtRamoAtividade.Enabled = False
            Me.lblCodigo.Enabled = True
            Me.txtIdRamoAtividade.Enabled = True
            Me.cmdProcura.Enabled = True
        Else
            Me.lblRamoAtividade.Enabled = True
            Me.txtRamoAtividade.Enabled = True
            Me.lblCodigo.Enabled = False
            Me.txtIdRamoAtividade.Enabled = False
            Me.cmdProcura.Enabled = False
        End If
    End Sub

    Private Sub frmRamoAtividade_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Me.txtIdRamoAtividade.Focus()
        modoAtual = eModo.eAguardar

    End Sub

    Private Sub cmdGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGravar.Click
        Dim bRetorno As Boolean
        Try

            If Me.validarFormulario Then
                bRetorno = Me.objRamoAtividade.salvar(Me.Codigo, _
                                                      Me.txtRamoAtividade.Text)

                If bRetorno Then
                    MyBase.Codigo = Me.objRamoAtividade.IDRamoAtividade
                    MyBase.modoAtual = eModo.eAguardar
                    Me.txtIdRamoAtividade.Text = MyBase.Codigo
                    Me.IDRamoAtividade = MyBase.Codigo
                End If
            Else
                MsgBox(Me.sMensagemValidacao, MsgBoxStyle.Exclamation, Me.Text)
                Me.cmdCancelar.Text = "Cancelar"
                MyBase.modoAtual = eModo.eEditar
                Exit Sub
            End If

        Catch ex As Exception
            Me.Limpar(Me)
            MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
        End Try
    End Sub

    Private Sub cmdExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExcluir.Click
        Try
            If MyBase.Exclui Then
                If Me.objRamoAtividade.excluir(Convert.ToInt32(Me.txtIdRamoAtividade.Text)) Then
                    MyBase.Codigo = 0
                    Me.IDRamoAtividade = 0
                    MyBase.Limpar(Me)
                    MyBase.modoAtual = eModo.eAguardar
                    Me.txtIdRamoAtividade.Focus()
                End If
            End If
        Catch ex As Exception
            MyBase.Codigo = 0
            Me.IDRamoAtividade = 0
            MyBase.modoAtual = eModo.eAguardar
            Me.Limpar(Me)
            MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
        End Try
    End Sub

    Private Sub cmdNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNovo.Click
        Me.txtRamoAtividade.Focus()
        Me.IDRamoAtividade = 0
    End Sub

    Private Sub cmdCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancelar.Click
        If Me.cmdCancelar.Text = "Alterar" Then
            Me.txtIdRamoAtividade.Focus()
        Else
            Me.txtRamoAtividade.Focus()
        End If
    End Sub

    Private Function validarFormulario() As Boolean

        Dim bRetorno As Boolean = True

        If Me.txtRamoAtividade.Text = String.Empty Then
            sMensagemValidacao = "- Ramo de atividade obrigatório."
            bRetorno = False
        End If

        Return bRetorno

    End Function

    Private Sub carregaDados()
        Dim drDados As DataRow

        Try
            If Me.IDRamoAtividade > 0 Then
                drDados = Me.objRamoAtividade.selecionarRamoAtividade(Me.IDRamoAtividade)
                Me.txtRamoAtividade.Text = drDados.Item("Descricao")
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
        End Try

    End Sub

    Private Sub txtIdRamoAtividade_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIdRamoAtividade.LostFocus
        Dim drDados As DataRow

        Try
            If Me.txtIdRamoAtividade.Text <> String.Empty Then
                drDados = Me.objRamoAtividade.selecionarRamoAtividade(Convert.ToInt32(Me.txtIdRamoAtividade.Text))
                If Not drDados Is Nothing Then
                    Me.txtRamoAtividade.Text = drDados.Item("Descricao")
                    MyBase.Codigo = drDados.Item("IDRamoAtividade")
                    Me.IDRamoAtividade = MyBase.Codigo
                    MyBase.modoAtual = eModo.eAguardar
                Else
                    MsgBox("Registro não encontrado", MsgBoxStyle.Exclamation, Me.Text)
                    Exit Sub
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
        End Try

    End Sub

    Private Sub cmdProcura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdProcura.Click
        Dim sql As String
        Dim frmDialogo As New frmPesquisa

        sql = Me.objRamoAtividade.sqlConsulta

        With frmDialogo
            .Campos = "iIDRamoAtividade,sDescricao"
            .Descricoes = "Código,Descrição"
            .Larguras = "50,300"
            .Sql = sql
            .Titulo = "Pesquisa de Ramo de atividade"
            .CarregaTela()
            If (Not .DS Is Nothing) Then
                If .DS.Tables(0).Rows.Count > 0 Then
                    .ShowDialog()
                    If (.DialogResult = Windows.Forms.DialogResult.OK) Then
                        MyBase.Codigo = .Id
                        Me.txtIdRamoAtividade.Text = Me.Codigo
                        Me.IDRamoAtividade = MyBase.Codigo
                        Me.carregaDados()
                        Me.modoAtual = eModo.eAguardar
                    End If
                Else
                    MsgBox("Registro não encontrado", MsgBoxStyle.Exclamation, Me.Text)
                    Exit Sub
                End If
            End If
        End With
    End Sub

#End Region

End Class
